#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project ：python_learning 
@File ：异步执行获取系统资源使用情况案例.py
@IDE  ：PyCharm 
@Author ：李涵彬
@Date ：2025/7/18 上午7:58 
"""

import asyncio
import time

import psutil


# 定义一个获取时间戳的函数，参数为时间戳格式
async def function1(timestamp_format):
	print(f"开始执行函数1，时间戳格式为：{timestamp_format}")
	timestamp = await asyncio.to_thread(time.time)
	print(f"函数1执行完成，当前时间戳为：{timestamp}")
	return timestamp


# 计算机cpu资源占用获取函数
async def get_cpu_usage():
	print("开始获取CPU使用率")
	cpu_usage = await asyncio.to_thread(psutil.cpu_percent)
	print(f"CPU使用率为：{cpu_usage}%")
	return cpu_usage


# 计算机内存资源占用获取函数
async def get_memory_usage():
	print("开始获取内存使用率")
	memory_usage = await asyncio.to_thread(psutil.virtual_memory)
	print(f"内存使用率为：{memory_usage.percent}%")
	return memory_usage


# 计算机硬盘资源占用获取函数
async def get_disk_usage():
	print("开始获取硬盘使用率")
	disk_usage = await asyncio.to_thread(psutil.disk_usage, "C:/")
	print(f"硬盘使用率为：{disk_usage.percent}%")
	return disk_usage

# 整合资源使用率获取函数
async def get_resource_usage():
	print("开始获取资源使用率")
	cpu_usage = await asyncio.to_thread(psutil.cpu_percent)
	memory_usage = await asyncio.to_thread(psutil.virtual_memory)
	disk_usage = await asyncio.to_thread(psutil.disk_usage, "C:/")
	print(f"CPU使用率为：{cpu_usage}%")
	print(f"内存使用率为：{memory_usage.percent}%")
	print(f"硬盘使用率为：{disk_usage.percent}%")
	return cpu_usage, memory_usage, disk_usage

if __name__ == '__main__':
	asyncio.run(get_resource_usage())
